from selenium import webdriver
import time
from public.wklogin import wklogin #从公用模块调入登录方法
from public.xjxiansuo import xiansou
import unittest #导入unittest单元测试框架
import os
from selenium.webdriver.support.ui import WebDriverWait #调入隐性等待时间
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ec

class Xiansu(unittest.TestCase):
    def setUp(self):
        self.driver=webdriver.Chrome()
        self.driver.get('http://182.92.197.48:8082/index.html#/login?redirect=%2F404')
        self.driver.maximize_window()
        time.sleep(5)
        print("starttime:" + time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time()))) #打印执行时间


    def tearDown(self):
        filedir = "D:/test/screenshot/" #定义一个截图路径
        if not os.path.exists(filedir): #如果没有就创建一个路径
            os.makedirs(os.path.join('D:/','test/','screenshot/')) #使用join拼接方法
        print("endTime:" + time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time()))) #打印执行结束时间
        screen_name = filedir + time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time())) + ".png" #截保存形式
        self.driver.get_screenshot_as_file( screen_name) #截屏
        self.driver.quit()

    # def testXiansuo(self):
    #         '''线索新建-正常输入点击取消'''
    #         wklogin(self.driver).xiansoulogin()  # 调入登录并且进入线索方法
    #         b=xiansou(self.driver).bbcxiansuo()
    #         self.driver.find_element_by_xpath('//div[@style="height: 100%;"]/div/div[3]/button[1]/span').click()  # 点击取消
    #         time.sleep(3)
    #         s = self.driver.find_element_by_xpath('//div/div[4]/div[2]/table[1]/tbody[1]/tr[1]/td[2]/div[1]').text
    #
    #         self.assertNotEqual(b,s)  # 断言第一行信息不是刚刚输入的线索名称证明没有新建成功


    # def testXiansuo_04(self):
    #     '''线索编辑-正常编辑保存'''
    #     wklogin(self.driver).xiansoulogin()
    #     # 取得编辑前的线索文本
    #     x=self.driver.find_element_by_xpath('//div/div[4]/div[2]/table[1]/tbody[1]/tr[1]/td[2]/div[1]').text
    #     self.driver.find_element_by_xpath('//div/div[4]/div[2]/table[1]/tbody[1]/tr[1]/td[2]/div[1]').click()
    #     time.sleep(2)
    #     self.driver.find_element_by_xpath("//button/span[text()='编辑']").click() #进入编辑
    #     time.sleep(2)
    #     self.driver.find_element_by_xpath('//div/form/div[1]/div/div/input').clear() #清空线索名称输入框
    #     aa = "客户" + time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
    #     self.driver.find_element_by_xpath('//div/form/div[1]/div/div/input').send_keys(aa) #重新输入
    #     self.driver.find_element_by_xpath('//form/div[9]/div/div/input').clear() #清空备注输入框
    #     self.driver.find_element_by_xpath('//form/div[9]/div/div/input').send_keys('成单') #重新输入
    #     time.sleep(2)
    #     self.driver.find_element_by_xpath("//div/div[3]/button[2]/span[text()='保存']").click()
    #     time.sleep(2)
    #     self.driver.find_element_by_xpath('//img[@class="t-close"]').click()
    #     self.driver.refresh() #刷新页面
    #     time.sleep(2)
    #     t=self.driver.find_element_by_xpath('//div/div[4]/div[2]/table[1]/tbody[1]/tr[1]/td[2]/div[1]').text
    #
    #     self.assertNotEqual(x,t) #断言编辑前和编辑后线索名称不相等

    # def testXiansuo_05(self):
    #     '''输入线索名称能否搜索出对应线索'''
    #     wklogin(self.driver).xiansoulogin() #登录并进入线索页面
    #     #在搜索框输入线索1
    #     ss=xiansou(self.driver).xiansuo() #先新建一条线索
    #     self.driver.find_element_by_xpath('//input[@placeholder="请输入线索名称/手机/电话"]').send_keys(ss)
    #     self.driver.find_element_by_class_name("el-icon-search").click()
    #     time.sleep(2)
    #     a=self.driver.find_element_by_xpath('//div/div[4]/div[2]/table/tbody/tr/td[2]/div').text
    #
    #     self.assertEqual(ss,a)

    # def testXiansuo_06(self):
    #     '''能否将线索转化为客户'''
    #     wklogin(self.driver).xiansoulogin()
    #     # 取得选中线索名称文本
    #     b = self.driver.find_element_by_xpath('//div/div[4]/div[2]/table[1]/tbody[1]/tr[1]/td[2]/div[1]').text
    #     # 选中线索
    #     self.driver.find_element_by_xpath('//div[4]/div[2]/table/tbody/tr[1]/td[1]/div/label/span/span').click()
    #     time.sleep(2)
    #     self.driver.find_element_by_xpath("//div[ text()='转化为客户']").click()  # 点击转化为客户
    #     time.sleep(2)
    #     self.driver.find_element_by_xpath('//div/div[3]/button[2]/span').click()  # 点击确定
    #     time.sleep(1)
    #     # 检测提示信息出现
    #     s=self.driver.find_element_by_xpath('//div[@role="alert"]/p').text
    #     time.sleep(2)
    #     self.driver.find_element_by_xpath('//li[@role="menuitem"]/span[text()="客户"]').click()  # 进入客户页面
    #     time.sleep(4)
    #     self.assertEqual('转化成功', s)  # 进行断言
    #     # 取得客户页面第一条
    #     a = self.driver.find_element_by_xpath( '//div/div[4]/div[2]/table[1]/tbody[1]/tr[1]/td[3]/div[1]').text
    #     self.assertEqual('转化成功', s)  # 进行断言
    #     self.assertEqual(b, a)  # 与之前的线索名称作比较相同证明转化为客户成功


    def testXiansuo_02(self):
        '''线索能否正常新建'''
        wklogin(self.driver).xiansoulogin()
        self.driver.find_element_by_xpath("//span[text()='新建线索']").click()
        time.sleep(2)
        aa="名称"+time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))
        self.driver.find_element_by_xpath('//div/form/div[1]/div/div/input').send_keys(aa)
    #     self.driver.find_element_by_xpath('//form/div[2]/div/div/div/input').click()
    #     time.sleep(2)
    #     self.driver.find_element_by_xpath("//li/span[text()='促销']").click()
    #     self.driver.find_element_by_xpath('//form/div[3]/div/div/input').send_keys('13456778907')
    #     self.driver.find_element_by_xpath('//form/div[4]/div/div/input').send_keys('13456778907')
    #     self.driver.find_element_by_xpath('//form/div[5]/div/div/div/input').click()
    #     time.sleep(2)
    #     self.driver.find_element_by_xpath("//li/span[text()='IT']").click()
    #     self.driver.find_element_by_xpath('//form/div[6]/div/div/div/input').click()
    #     time.sleep(2)
    #     self.driver.find_element_by_xpath("//li/span[text()='A（重点客户）']").click()
    #     self.driver.find_element_by_xpath('//form/div[7]/div/div/input').send_keys('江西省')
    #     self.driver.find_element_by_xpath('//form/div[8]/div/div/span/i').click()
    #     time.sleep(2)
    #     self.driver.find_element_by_xpath("//html/body/div/div/button[1]").click()
    #     self.driver.find_element_by_xpath('//form/div[9]/div/div/input').send_keys('无')
    #     # time.sleep(2)
    #     self.driver.find_element_by_xpath('//div/div[3]/button[2]/span').click() #点击保存
    #     time.sleep(1)
    #     #定位提示信息
    #     tjcg=self.driver.find_element_by_xpath("//p[text()='添加成功']").text
    #     # tjcg=WebDriverWait(self.driver,10,0.1).until(ec.presence_of_element_located((By.XPATH,"//p[text()='添加成功']"))).text
    #     time.sleep(2)
    #     self.driver.refresh() #刷新页面
    #     time.sleep(3)
    #     bb = self.driver.find_element_by_xpath('//div/div[4]/div[2]/table[1]/tbody[1]/tr[1]/td[2]/div[1]').text
    #     self.assertEqual('添加成功', tjcg)  # 断言提示信息是否和预期一致
    #     self.assertEqual(aa,bb) #断言第一行是否为刚刚新建


    #
    # def testXiansuo_07(self):
    #     '''能否成功删除线索'''
    #     wklogin(self.driver).xiansoulogin()
    #     a = self.driver.find_element_by_xpath(
    #         '//div/div[4]/div[2]/table[1]/tbody[1]/tr[1]/td[2]/div[1]').text  # 取得删除前线索名称文本
    #     self.driver.find_element_by_xpath('//div[4]/div[2]/table/tbody/tr[1]/td[1]/div/label/span/span').click()  # 选中线索
    #     time.sleep(2)
    #     self.driver.find_element_by_xpath("//div[text()='删除']").click()
    #     time.sleep(2)
    #     self.driver.find_element_by_xpath('//div/div[3]/button[2]/span').click()
    #     time.sleep(3)
    #     b = self.driver.find_element_by_xpath(
    #         '//div/div[4]/div[2]/table[1]/tbody[1]/tr[1]/td[2]/div[1]').text  # 取得删除后线索名称文本
    #
    #     self.assertNotEqual(a, b)  # 断言a不等于b

    def testXiansuo_01(self):
        '''点击线索按钮能否进入线索页面'''
        wklogin(self.driver).login() #调用登录方法
        self.driver.find_element_by_link_text('客户管理').click()
        time.sleep(8)
        self.driver.find_element_by_xpath("//li[@tabindex='-1']/span[text()='线索']").click() #点击线索
        time.sleep(2)
        t=self.driver.find_element_by_xpath("//div[text()='线索管理']").text #取得线索页面标志控件文本

        if t=='线索管理':  #使用if断言
            print('pass')
        else:
            print('fail')
            self.driver.find_element_by_xpath('错误') #自动抛一个错误，使其报错